//----------------------------------------------------------------------------- // // Copyright (c) Microsoft Corporation. All Rights Reserved. // //----------------------------------------------------------------------------- #pragma once #define _BASETSD_H_ #define _M_IX86 //#define __NEED_mbstate_t #define __NEED_struct__IO_FILE #define __NEED_FILE #include "bits\alltypes.h" #define _FILE_DEFINED #include #include typedef wchar_t WCHAR; typedef WCHAR TCHAR, * PTCHAR; typedef WCHAR TBYTE, * PTBYTE; #define CONST const #define VOID void #ifndef MAX_PATH #define MAX_PATH 260 #endif //typedef long long __int64; typedef unsigned long long __uint64; typedef int BOOL; typedef char CHAR; typedef signed char INT8; typedef unsigned char UCHAR; typedef unsigned char UINT8; typedef unsigned char BYTE; typedef short SHORT; typedef signed short INT16; typedef unsigned short USHORT; typedef unsigned short UINT16; typedef unsigned short WORD; typedef int INT; typedef signed int INT32; typedef unsigned int UINT; typedef unsigned int UINT32; typedef long LONG; typedef unsigned long ULONG; typedef unsigned long DWORD; typedef float FLOAT; typedef FLOAT* PFLOAT; typedef BOOL * PBOOL; typedef BOOL * LPBOOL; typedef BYTE * PBYTE; typedef BYTE * LPBYTE; typedef int * PINT; typedef int * LPINT; typedef WORD * PWORD; typedef WORD * LPWORD; typedef long * LPLONG; typedef DWORD * PDWORD; typedef DWORD * LPDWORD; typedef void * LPVOID; typedef CONST void * LPCVOID; typedef __int64 LONGLONG; typedef __int64 LONG64; typedef __int64 INT64; typedef __uint64 ULONGLONG; typedef __uint64 DWORDLONG; typedef __uint64 ULONG64; typedef __uint64 DWORD64; typedef __uint64 UINT64; typedef int INT_PTR; typedef unsigned int UINT_PTR; typedef long LONG_PTR; typedef unsigned long ULONG_PTR; typedef ULONG_PTR DWORD_PTR, * PDWORD_PTR; typedef ULONG_PTR SIZE_T, * PSIZE_T; typedef LONG_PTR SSIZE_T, * PSSIZE_T; typedef UINT_PTR WPARAM; typedef LONG_PTR LPARAM; typedef LONG_PTR LRESULT; typedef int BOOL; #ifndef FALSE #define FALSE 0 #endif #ifndef TRUE #define TRUE 1 #endif typedef wchar_t WCHAR; typedef const CHAR* LPCSTR; typedef CHAR* LPSTR, *PSTR; typedef const WCHAR* LPCWSTR; typedef WCHAR* LPWSTR; typedef LPWSTR PTSTR, LPTSTR; typedef LPCWSTR PCTSTR, LPCTSTR; typedef unsigned char byte; typedef byte cs_byte; typedef unsigned char boolean; typedef long HRESULT; typedef unsigned long long HANDLE; #define DECLARE_HANDLE(name) struct name##__{int unused;}; typedef struct name##__ *name typedef HANDLE* PHANDLE; #ifndef _REAL_GDI_PLUS_ DECLARE_HANDLE(HDC); DECLARE_HANDLE(HBITMAP); DECLARE_HANDLE(HBRUSH); DECLARE_HANDLE(HPEN); DECLARE_HANDLE(HFONT); DECLARE_HANDLE(HINSTANCE); DECLARE_HANDLE(HWND); DECLARE_HANDLE(HHOOK); typedef HINSTANCE HMODULE; #endif typedef DWORD COLORREF; #define CALLBACK __stdcall #ifndef _REAL_GDI_PLUS_ typedef struct _GUID { unsigned long Data1; unsigned short Data2; unsigned short Data3; unsigned char Data4[8]; } GUID; #endif /*typedef struct _iobuf { void* _Placeholder; } FILE;*/ typedef union _LARGE_INTEGER { struct { DWORD LowPart; LONG HighPart; } DUMMYSTRUCTNAME; struct { DWORD LowPart; LONG HighPart; } u; LONGLONG QuadPart; } LARGE_INTEGER; #define S_OK ((HRESULT)0L) // Exceptions - Start typedef void* PVOID; #define SIZE_OF_80387_REGISTERS 80 #define MAXIMUM_SUPPORTED_EXTENSION 512 #define EXCEPTION_MAXIMUM_PARAMETERS 15 // maximum number of exception parameters typedef struct _FLOATING_SAVE_AREA { DWORD ControlWord; DWORD StatusWord; DWORD TagWord; DWORD ErrorOffset; DWORD ErrorSelector; DWORD DataOffset; DWORD DataSelector; BYTE RegisterArea[SIZE_OF_80387_REGISTERS]; DWORD Spare0; } FLOATING_SAVE_AREA; typedef FLOATING_SAVE_AREA* PFLOATING_SAVE_AREA; typedef struct _CONTEXT { // // The flags values within this flag control the contents of // a CONTEXT record. // // If the context record is used as an input parameter, then // for each portion of the context record controlled by a flag // whose value is set, it is assumed that that portion of the // context record contains valid context. If the context record // is being used to modify a threads context, then only that // portion of the threads context will be modified. // // If the context record is used as an IN OUT parameter to capture // the context of a thread, then only those portions of the thread's // context corresponding to set flags will be returned. // // The context record is never used as an OUT only parameter. // DWORD ContextFlags; // // This section is specified/returned if CONTEXT_DEBUG_REGISTERS is // set in ContextFlags. Note that CONTEXT_DEBUG_REGISTERS is NOT // included in CONTEXT_FULL. // DWORD Dr0; DWORD Dr1; DWORD Dr2; DWORD Dr3; DWORD Dr6; DWORD Dr7; // // This section is specified/returned if the // ContextFlags word contians the flag CONTEXT_FLOATING_POINT. // FLOATING_SAVE_AREA FloatSave; // // This section is specified/returned if the // ContextFlags word contians the flag CONTEXT_SEGMENTS. // DWORD SegGs; DWORD SegFs; DWORD SegEs; DWORD SegDs; // // This section is specified/returned if the // ContextFlags word contians the flag CONTEXT_INTEGER. // DWORD Edi; DWORD Esi; DWORD Ebx; DWORD Edx; DWORD Ecx; DWORD Eax; // // This section is specified/returned if the // ContextFlags word contians the flag CONTEXT_CONTROL. // DWORD Ebp; DWORD Eip; DWORD SegCs; // MUST BE SANITIZED DWORD EFlags; // MUST BE SANITIZED DWORD Esp; DWORD SegSs; // // This section is specified/returned if the ContextFlags word // contains the flag CONTEXT_EXTENDED_REGISTERS. // The format and contexts are processor specific // BYTE ExtendedRegisters[MAXIMUM_SUPPORTED_EXTENSION]; } CONTEXT; typedef CONTEXT* PCONTEXT; typedef struct _EXCEPTION_RECORD { DWORD ExceptionCode; DWORD ExceptionFlags; struct _EXCEPTION_RECORD* ExceptionRecord; PVOID ExceptionAddress; DWORD NumberParameters; ULONG_PTR ExceptionInformation[EXCEPTION_MAXIMUM_PARAMETERS]; } EXCEPTION_RECORD; typedef EXCEPTION_RECORD* PEXCEPTION_RECORD; typedef struct _EXCEPTION_POINTERS { PEXCEPTION_RECORD ExceptionRecord; PCONTEXT ContextRecord; } EXCEPTION_POINTERS, * PEXCEPTION_POINTERS; // Exceptions - End // GDI+ - Start #ifndef NOMINMAX #ifndef max #define max(a,b) (((a) > (b)) ? (a) : (b)) #endif #ifndef min #define min(a,b) (((a) < (b)) ? (a) : (b)) #endif #endif /* NOMINMAX */ #define MAKEWORD(a, b) ((WORD)(((BYTE)(((DWORD_PTR)(a)) & 0xff)) | ((WORD)((BYTE)(((DWORD_PTR)(b)) & 0xff))) << 8)) #define MAKELONG(a, b) ((LONG)(((WORD)(((DWORD_PTR)(a)) & 0xffff)) | ((DWORD)((WORD)(((DWORD_PTR)(b)) & 0xffff))) << 16)) #define LOWORD(l) ((WORD)(((DWORD_PTR)(l)) & 0xffff)) #define HIWORD(l) ((WORD)((((DWORD_PTR)(l)) >> 16) & 0xffff)) #define LOBYTE(w) ((BYTE)(((DWORD_PTR)(w)) & 0xff)) #define HIBYTE(w) ((BYTE)((((DWORD_PTR)(w)) >> 8) & 0xff)) #define RGB(r,g,b) ((COLORREF)(((BYTE)(r)|((WORD)((BYTE)(g))<<8))|(((DWORD)(BYTE)(b))<<16))) #ifndef IN #define IN #endif #ifndef OUT #define OUT #endif #define REAL_MAX FLT_MAX #define REAL_MIN FLT_MIN #define REAL_TOLERANCE (FLT_MIN * 100) #define REAL_EPSILON 1.192092896e-07F /* FLT_EPSILON */ typedef float REAL; typedef DWORD ARGB; #define DEFAULT_CHARSET 1 #define FW_DONTCARE 0 #define FW_THIN 100 #define FW_EXTRALIGHT 200 #define FW_LIGHT 300 #define FW_NORMAL 400 #define FW_MEDIUM 500 #define FW_SEMIBOLD 600 #define FW_BOLD 700 #define FW_EXTRABOLD 800 #define FW_HEAVY 900 #define FW_ULTRALIGHT FW_EXTRALIGHT #define FW_REGULAR FW_NORMAL #define FW_DEMIBOLD FW_SEMIBOLD #define FW_ULTRABOLD FW_EXTRABOLD #define FW_BLACK FW_HEAVY #define DT_TOP 0x00000000 #define DT_LEFT 0x00000000 #define DT_CENTER 0x00000001 #define DT_RIGHT 0x00000002 #define DT_VCENTER 0x00000004 #define DT_BOTTOM 0x00000008 #define DT_WORDBREAK 0x00000010 #define DT_SINGLELINE 0x00000020 #define DT_EXPANDTABS 0x00000040 #define DT_TABSTOP 0x00000080 #define DT_NOCLIP 0x00000100 #define DT_EXTERNALLEADING 0x00000200 #define DT_CALCRECT 0x00000400 #define DT_NOPREFIX 0x00000800 #define DT_INTERNAL 0x00001000 #define _isnan isnan #define INVALID_HANDLE_VALUE ((HANDLE)(LONG_PTR)-1) #define SUCCEEDED(hr) (((HRESULT)(hr)) >= 0) #define FAILED(hr) (((HRESULT)(hr)) < 0) typedef struct _SECURITY_ATTRIBUTES { DWORD nLength; LPVOID lpSecurityDescriptor; BOOL bInheritHandle; } SECURITY_ATTRIBUTES, * PSECURITY_ATTRIBUTES, * LPSECURITY_ATTRIBUTES; #define STANDARD_RIGHTS_REQUIRED (0x000F0000L) #define SECTION_QUERY 0x0001 #define SECTION_MAP_WRITE 0x0002 #define SECTION_MAP_READ 0x0004 #define SECTION_MAP_EXECUTE 0x0008 #define SECTION_EXTEND_SIZE 0x0010 #define SECTION_MAP_EXECUTE_EXPLICIT 0x0020 // not included in SECTION_ALL_ACCESS #define SECTION_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED|SECTION_QUERY|\ SECTION_MAP_WRITE | \ SECTION_MAP_READ | \ SECTION_MAP_EXECUTE | \ SECTION_EXTEND_SIZE) #define FILE_MAP_WRITE SECTION_MAP_WRITE #define FILE_MAP_READ SECTION_MAP_READ #define FILE_MAP_ALL_ACCESS SECTION_ALL_ACCESS #define PAGE_NOACCESS 0x01 #define PAGE_READONLY 0x02 #define PAGE_READWRITE 0x04 #define PAGE_WRITECOPY 0x08 #define STATUS_WAIT_0 ((DWORD )0x00000000L) #define WAIT_OBJECT_0 ((STATUS_WAIT_0 ) + 0 ) #define HC_ACTION 0 #define VK_BACK 0x08 #define VK_TAB 0x09 /* * 0x0A - 0x0B : reserved */ #define VK_CLEAR 0x0C #define VK_RETURN 0x0D /* * 0x0E - 0x0F : unassigned */ #define VK_SHIFT 0x10 #define VK_CONTROL 0x11 #define VK_MENU 0x12 #define VK_PAUSE 0x13 #define VK_CAPITAL 0x14 #define VK_KANA 0x15 #define VK_HANGEUL 0x15 /* old name - should be here for compatibility */ #define VK_HANGUL 0x15 /* * 0x16 : unassigned */ #define VK_JUNJA 0x17 #define VK_FINAL 0x18 #define VK_HANJA 0x19 #define VK_KANJI 0x19 /* * 0x1A : unassigned */ #define VK_ESCAPE 0x1B #define VK_CONVERT 0x1C #define VK_NONCONVERT 0x1D #define VK_ACCEPT 0x1E #define VK_MODECHANGE 0x1F #define VK_SPACE 0x20 #define VK_PRIOR 0x21 #define VK_NEXT 0x22 #define VK_END 0x23 #define VK_HOME 0x24 #define VK_LEFT 0x25 #define VK_UP 0x26 #define VK_RIGHT 0x27 #define VK_DOWN 0x28 #define VK_SELECT 0x29 #define VK_PRINT 0x2A #define VK_EXECUTE 0x2B #define VK_SNAPSHOT 0x2C #define VK_INSERT 0x2D #define VK_DELETE 0x2E #define VK_HELP 0x2F /* * VK_0 - VK_9 are the same as ASCII '0' - '9' (0x30 - 0x39) * 0x3A - 0x40 : unassigned * VK_A - VK_Z are the same as ASCII 'A' - 'Z' (0x41 - 0x5A) */ #define VK_LWIN 0x5B #define VK_RWIN 0x5C #define VK_APPS 0x5D /* * 0x5E : reserved */ #define VK_SLEEP 0x5F #define VK_NUMPAD0 0x60 #define VK_NUMPAD1 0x61 #define VK_NUMPAD2 0x62 #define VK_NUMPAD3 0x63 #define VK_NUMPAD4 0x64 #define VK_NUMPAD5 0x65 #define VK_NUMPAD6 0x66 #define VK_NUMPAD7 0x67 #define VK_NUMPAD8 0x68 #define VK_NUMPAD9 0x69 #define VK_MULTIPLY 0x6A #define VK_ADD 0x6B #define VK_SEPARATOR 0x6C #define VK_SUBTRACT 0x6D #define VK_DECIMAL 0x6E #define VK_DIVIDE 0x6F #define VK_F1 0x70 #define VK_F2 0x71 #define VK_F3 0x72 #define VK_F4 0x73 #define VK_F5 0x74 #define VK_F6 0x75 #define VK_F7 0x76 #define VK_F8 0x77 #define VK_F9 0x78 #define VK_F10 0x79 #define VK_F11 0x7A #define VK_F12 0x7B #define VK_F13 0x7C #define VK_F14 0x7D #define VK_F15 0x7E #define VK_F16 0x7F #define VK_F17 0x80 #define VK_F18 0x81 #define VK_F19 0x82 #define VK_F20 0x83 #define VK_F21 0x84 #define VK_F22 0x85 #define VK_F23 0x86 #define VK_F24 0x87